home *** CD-ROM | disk | FTP | other *** search
-
- Listing 3 -- exit.c
-
- /* exit function */
- #include <stdio.h>
- #include <stdlib.h>
- #include "yfuns.h"
-
- /* macros */
- #define NATS 32
- /* static data */
- void (*_Atfuns[NATS])(void) = {0};
- size_t _Atcount = {NATS};
-
- void (exit)(int status)
- { /* tidy up and exit to system */
- while (_Atcount < NATS)
- (*_Atfuns[_Atcount++])();
- { /* close all files */
- size_t i;
-
- for (i = 0; i < FOPEN_MAX; ++i)
- if (_Files[i])
- fclose(_Files[i]);
- }
- _Exit(status);
- }
-
-